package com.ygqh.baby.service.weixin.templatemessage;

import java.util.List;
import java.util.Map;

import com.foxinmy.weixin4j.model.WeixinAccount;
import com.foxinmy.weixin4j.mp.message.TemplateMessage;
import com.foxinmy.weixin4j.mp.model.TemplateMessageInfo;
import com.foxinmy.weixin4j.util.NameValue;
import com.ygqh.baby.ao.Message;
import com.ygqh.baby.ao.WxMessageType;

public abstract class TemplateMessageApi {

	public abstract <T extends TemplateMessage> Message sendTemplateMessage(T t, String appId, String appSecret);

	public abstract <T extends TemplateMessage> Message sendTemplateMessage(T t, WeixinAccount weixinAccount);

	public abstract List<TemplateMessageInfo> getTemplateMessageList(WeixinAccount weixinAccount);

	public abstract String getTemplateMessageId(WxMessageType wxMessageType, WeixinAccount weixinAccount);

	public abstract TemplateMessage assemblyTemplateMessage(WxMessageType wxMessageType, WeixinAccount weixinAccount, String openId, String url,
			Map<String, NameValue> contentMap);

	public abstract TemplateMessage assemblyTemplateMessage(WxMessageType wxMessageType, WeixinAccount weixinAccount, String openId, String url, String head,
			String remark, String... keyword);

}
